define(['zepto','common','layer','mylayer','postItem'],function($,md_common,layer,mylayer,postItem){
	var app={
		//登录框事件初始化
		init:function(){
			var _this=this;
			$(".signup_btn").off("click").on("click",function(){
				$(".userBox").find(".reg_panel").show().siblings(".panel").hide();
			});
			$(".login_btn").off("click").on("click",function(){
				$(".userBox").find(".login_panel").show().siblings(".panel").hide();
			});
			$(".forget_password").off("click").on("click",function(){
				$(".userBox").find(".forget_panel").show().siblings(".panel").hide();
			});
			$(".login_form").each(function(){
				var form=$(this);
				form.find(".submit").on("click",function(){
					var flag=true;
					var user_obj=form.find(".login_user");
					var login_user=$.trim(user_obj.val());
					if(!login_user){
						user_obj.parent().find(".error_msg").html('Please input the email').show();
						flag=false;
					}
					else{
						user_obj.parent().find(".error_msg").html('').hide();
					}
					var password_obj=form.find(".login_password");
					var login_password=$.trim(password_obj.val());
					if(!login_password){
						password_obj.parent().find(".error_msg").html('Please input the password').show();
						flag=false;
					}
					else{
						password_obj.parent().find(".error_msg").html('').hide();
					}
					if(flag){
						var data={
							'login_user':login_user,
							'login_password':login_password
						};
						var op={form:form,data:data};
						_this.doLogin(op);
					}
				});
			});
			$(".reg_form").each(function(){
				var form=$(this);
				form.find(".submit").on("click",function(){
					var flag=true;
					var user_obj=form.find(".reg_user");
					var username=$.trim(user_obj.val());
					if(!username){
						user_obj.parent().find(".error_msg").html('Please input the full name').show();
						flag=false;
					}
					else if(username.length>20){
						user_obj.parent().find(".error_msg").html('full name not be more than 50 characters').show();
						flag=false;
					}
					else{
						user_obj.parent().find(".error_msg").html('').hide();
					}
					var email_obj=form.find(".register_email");
					var register_email=$.trim(user_obj.val());
					var reg = /^(\w)+(\.\w+)*@(\w)+((\.\w+)+)$/;
					if(!register_email){
						email_obj.parent().find(".error_msg").html('Please input the full name').show();
						flag=false;
					}
					else if(reg.test(register_email)){
						email_obj.parent().find(".error_msg").html('Please enter a vaild email').show();
						flag=false;
					}
					else{
						email_obj.parent().find(".error_msg").html('').hide();
					}
					var password_obj=form.find(".register_password");
					var register_password=$.trim(password_obj.val());
					if(!register_password){
						password_obj.parent().find(".error_msg").html('Please input the password').show();
						flag=false;
					}
					else{
						password_obj.parent().find(".error_msg").html('').hide();
					}
					var confirm_password_obj=form.find(".confirm_password");
					var confirm_password=$.trim(confirm_password_obj.val());
					if(confirm_password!=register_password){
						confirm_password_obj.parent().find(".error_msg").html('The confirmation password does not match the password').show();
						flag=false;
					}
					else{
						confirm_password_obj.parent().find(".error_msg").html('').hide();
					}

					if(flag){
						var data={
							'register_username':username,
							'register_email':register_email,
							'register_password':register_password
						};
						var op={form:form,data:data};
						_this.doReg(op);
					}
				});
			});
			$(".forget_form").each(function(){
				var form=$(this);
				form.find(".submit").on("click",function(){
					_this.doForget(form);
				});
			});
			$(".login_user").on("keyup",function(){
				var value=$.trim($(this).val());
				if(!value){
					$(this).parent().find(".error_msg").html('Please input the email').show();
				}
				else{
					$(this).parent().find(".error_msg").html("").hide();
				}
			});
			$(".login_password").on("keyup",function(){
				var value=$.trim($(this).val());
				if(!value){
					$(this).parent().find(".error_msg").html('Please input the password').show();
				}
				else{
					$(this).parent().find(".error_msg").html("").hide();
				}	
			});
			$(".reg_user").on("keyup",function(){
				var value=$.trim($(this).val());
				if(!value){
					$(this).parent().find(".error_msg").html('Please input the full name').show();
				}
				else{
					$(this).parent().find(".error_msg").html("").hide();
				}
			});
			$(".register_email").on("keyup",function(){
				var value=$.trim($(this).val());
				var reg = /^(\w)+(\.\w+)*@(\w)+((\.\w+)+)$/;
				if(!value){
					$(this).parent().find(".error_msg").html('Please input the email').show();
				}
				else if(!reg.test(value)){
					$(this).parent().find(".error_msg").html('Please enter a vaild email').show();
				}
				else{
					$(this).parent().find(".error_msg").html("").hide();
				}
			});
			$(".register_password").on("keyup",function(){
				var value=$.trim($(this).val());
				if(!value){
					$(this).parent().find(".error_msg").html('Please input the password').show();
				}
				else if(value.length>50){
					$(this).parent().find(".error_msg").html('Password not be more than 50 characters').show();
				}
				else{
					$(this).parent().find(".error_msg").html("").hide();
				}
			});
			$(".confirm_password").on("keyup",function(){
				var value=$.trim($(this).val());
				var register_password=$.trim($(this).parent().parent().find(".register_password"));
				if(register_password!=value){
					$(this).parent().find(".error_msg").html('The confirmation password does not match the password').show();
				}
				else{
					$(this).parent().find(".error_msg").html("").hide();
				}
			});
		},
		//登录提交
		doLogin:function(op){
			if(op){
				var sub_btn=op.form.find(".submit");
				if(sub_btn.hasClass('disabled')){
					return false;
				}
				sub_btn.addClass('disabled');
				var _this=this;
				var data=op.data?op.data:{};
				$.postAjax("/mobile/user/login",data,function(result){
					sub_btn.removeClass('disabled');
					if(result.code=="0x00000"){
						var u={
							'user_name':result.user_name,
							'token':result.token
						};
						if(window.localStorage){

							sessionStorage.setItem("app_u",JSON.stringify(u));

						}
						if(result.cart_item_number!=undefined){
							$(".cart_num").text(result.cart_item_number);
						}
						$(".pageUser").addClass("current").siblings(".page").removeClass("current");
						$(".userBox").html($(".account_bank").html());
						_this.initAccount();
					}
					else{
						md_common.showMessage("error","Sorry,The email address or password you entered is incorrect.");
					}
				},function(){
					sub_btn.removeClass('disabled');
					md_common.showMessage("error","Oh~ damn it,Please be patient and I'm trying to speed up.");
				});
			}
		},
		//注册提交
		doReg:function(op){
			if(op){
				var _this=this;
				var sub_btn=op.form.find(".submit");
				if(sub_btn.hasClass('disabled')){
					return false;
				}
				sub_btn.addClass('disabled');
				var data=op.data?op.data:{};
				$.postAjax("/mobile/user/register",data,function(result){
					sub_btn.removeClass('disabled');
					if(result.code == '0x00000'){
						//window.location.href=window.location.href;
					}
					else{
						var obj;
						for(i in result.error_info){
							obj =op.form.find("input[name='"+i+"']");
							obj.parent().find(".error_msg").html(result.error_info[i]).show();
						}	
					}
				},function(){
					sub_btn.removeClass('disabled');
					md_common.showMessage("error","Oh~ damn it,Please be patient and I'm trying to speed up.");
				});
			}
		},
		//忘记密码提交
		doForget:function(form){
			
		},
		//显示提示信息
		showMsg:function(errors, evt,success){
			if (evt && evt.preventDefault) {
				evt.preventDefault();
			} else if (event) {
				event.returnValue = false;
			}
			if(errors.length==0){
				success();	
			}
			for(var i=0;i<errors.length;i++){
				var name=errors[i].name;
				$(evt.target).find("input[name='"+name+"']").parent().find(".error_msg").html(errors[i].message).show();
			}
		},
		//设置登录完成回调
		initSuccess:function(fevent){
			this.fevent=fevent;
		},
		initAccount:function(){
			$(".account_page").off("click").on("click",function(){
				if($(".setting_layer").size()>0){
					$(".setting_layer").show();
					$(".warp").hide();
					return false;
				}
				var lay=md_common.showLoad(false,false);
				$.postAjax("/mobile/user/setting",{},function(result){
					if(result.data){
						layer.close(lay);
						mylayer.showLayer({
			           		title:"账户设置",
			           		content:result.data,
			           		class_name:'setting_layer',
			           		no_remove:true,
			           		success:function(){
			           			
				           	},
			           		url:"/user/setting"
			           });
					}
				});
			});
			$(".wish_page").off("click").on("click",function(){
				if($(".wish_layer").size()>0){
					$(".wish_layer").show();
					$(".warp").hide();
					return false;
				}
				var user="";
				if(window.localStorage){
					var user=JSON.parse(sessionStorage.getItem("app_u"))||{};
				}
				if(user&&user.user_name){
					var lay=md_common.showLoad(false,false);
					$.postAjax("/mobile/user/wish/"+user.user_name,{},function(result){
						if(result.data){
							layer.close(lay);
							mylayer.showLayer({
				           		title:"我的收藏夹",
				           		content:result.data,
				           		class_name:'wish_layer',
			           			no_remove:true,
				           		success:function(){
				           			postItem.init();
					           		$(".wish_layer").off("scroll").on("scroll",function(){
					           			if(!$(".wish_list").hasClass("ajax_load")){
							    			var total=$(".wish_list").attr("total");
								    		var offset=$(".wish_list").find("li").size();
								    		if(offset<total){
								    			var bottom_flag=$(this)[0].scrollTop >= ($(this)[0].scrollHeight - $(this).height()-100)?true:false;
									    		if(bottom_flag){
									    			$(".wish_list").addClass("ajax_load");
									    			$(".wish_layer").find(".list_loading").show();
									    			$.postAjax("/site",{'offset':offset},function(result) {
												        if(result.list){
												        	//var html=_this.getPostInfo(result.list);
												            $(".wish_list").append(result.data);
												            postItem.init();
												            $(".wish_list").removeClass("ajax_load");
												            $(".wish_layer").find(".list_loading").hide();
												        }
													});
									    		}
								    		}
							    		}
					           		})
				           		},
				           		url:"/user/wish"
				           });
						}
					});
				}
			});
			$(".parseup_page").off("click").on("click",function(){
				if($(".parseup_layer").size()>0){
					$(".parseup_layer").show();
					$(".warp").hide();
					return false;
				}
				var user="";
				if(window.localStorage){
					var user=JSON.parse(sessionStorage.getItem("app_u"))||{};
				}
				if(user&&user.user_name){
					var lay=md_common.showLoad(false,false);
					$.postAjax("/mobile/user/praise/"+user.user_name,{},function(result){
						if(result.data){
							layer.close(lay);
							mylayer.showLayer({
				           		title:"我的点赞",
				           		content:result.data,
				           		class_name:'parseup_layer',
			           			no_remove:true,
				           		success:function(){
				           			postItem.init();
					           		$(".parseup_layer").off("scroll").on("scroll",function(){
					           			if(!$(".praise_list").hasClass("ajax_load")){
							    			var total=$(".praise_list").attr("total",result.total);
								    		var offset=$(".praise_list").find("li").size();
								    		if(offset<total){
								    			var bottom_flag=$(this)[0].scrollTop >= ($(this)[0].scrollHeight - $(this).height()-100)?true:false;
									    		if(bottom_flag){
									    			$(".praise_list").addClass("ajax_load");
									    			$(".parseup_layer").find(".list_loading").show();
									    			$.postAjax("/mobile/user/praise/"+user.user_name,{'offset':offset},function(result) {
												        if(result.data){
												        	//var html=_this.getPostInfo(result.list);
												            $(".praise_list").append(result.data);
												            postItem.init();
												            $(".praise_list").removeClass("ajax_load");
												            $(".parseup_layer").find(".list_loading").hide();
												        }
													});
									    		}
								    		}
							    		}
					           		});
				           		},
				           		url:"/user/parseup"
				           });
						}
					});
				}
			});
			$(".review_page").off("click").on("click",function(){
				if($(".review_layer").size()>0){
					$(".review_layer").show();
					$(".warp").hide();
					return false;
				}
				var user="";
				if(window.localStorage){
					var user=JSON.parse(sessionStorage.getItem("app_u"))||{};
				}
				if(user&&user.user_name){
					var lay=md_common.showLoad(false,false);
					$.postAjax("/mobile/user/review/"+user.user_name,{},function(result){
						if(result.data){
							$(".review_list").attr("total",result.total);
							layer.close(lay);
							mylayer.showLayer({
				           		title:"我的评论",
				           		content:result.data,
				           		class_name:'review_layer',
			           			no_remove:true,
				           		success:function(){
				           			postItem.init();
					           		$(".review_layer").off("scroll").on("scroll",function(){
					           			if(!$(".review_list").hasClass("ajax_load")){
							    			var total=$(".review_list").attr("total");
								    		var offset=$(".review_list").find("li").size();
								    		if(offset<total){
								    			var bottom_flag=$(this)[0].scrollTop >= ($(this)[0].scrollHeight - $(this).height()-100)?true:false;
									    		if(bottom_flag){
									    			$(".review_list").addClass("ajax_load");
									    			$(".review_layer").find(".list_loading").show();
									    			$.postAjax("/mobile/user/review/"+user.user_name,{'offset':offset},function(result) {
												        if(result.list){
												        	//var html=_this.getPostInfo(result.list);
												            $(".review_list").append(result.data);
												            postItem.init();
												            $(".review_list").removeClass("ajax_load");
												            $(".review_layer").find(".list_loading").hide();
												        }
													});
									    		}
								    		}
							    		}
					           		});
				           		},
				           		url:"/user/review"
				           });
						}
					});
				}
			});
			$(".logout").off("click").on("click",function(){
				if(window.localStorage){
					sessionStorage.setItem("app_u","");
				}
				$(".wrapPage").removeClass("current");
				$(".sitePage").addClass("current").find(".pageHome").addClass("current").siblings(".page").removeClass("current");
			});
		}
	};
	return app;
});
